/*
 * List.h
 *
 *  Created on: 2012-5-17
 *      Author: esf
 */

#ifndef LIST_H_
#define LIST_H_

#include "Collection.h"
#include "ListIterator.h"
namespace collection {
template <class E>
class List: public collection::Collection<E>{
public:
	virtual E get(int index)=0;

	virtual int indexOf(E e)=0;

	virtual int lastIndexOf(E e)=0;

	virtual ListIterator<E> listIterator()=0;

	virtual E remove(int index)=0;

	virtual E set(int index, E element) = 0;

	virtual List<E> subList(int formIndex,int toIndex);
	virtual ~List(){}

};

} /* namespace collection */
#endif /* LIST_H_ */
